package org.gten.gegedexin.service;

import org.gten.gegedexin.SMTP.SSLEmailSender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

@Service
public class ReceiveFile {
    @Autowired
    AtInfoServiceImpl atInfoService;

    SSLEmailSender smtp = new SSLEmailSender();

    //  通用存储路径前缀
    public static String FILEPATH = new String("D:\\ERic\\DEVELOP\\Projects\\gegedexin\\src\\main\\");

    public void addfile(int id,MultipartFile file) throws Exception {
        String filename = file.getOriginalFilename();
        //  给附件分配id，id以1开头，其他部分与邮件正文相同
        String fileId = "1" + String.format("%07d",id);
        atInfoService.addAtInfo(id,filename,file.getContentType());
        //  将附件保存到临时位置
        File filepath = new File(FILEPATH+"resources/tempFile/"+filename);
        file.transferTo(filepath);
        smtp.sendAppendix(fileId,filepath.getPath(),filename);
        //  发送后将临时保存的附件删除
        filepath.delete();
    }

//    //  有点问题，到时再改
//    public void storageFile(MultipartFile file) throws IOException {
//        String id = "a";
//        String filename = file.getOriginalFilename();
//        //  附件存储的路径必须为绝对路径
//        String appendixDir = "D:/java/gegedexin/src/main/resources/appendix/";
//        /*
//        *       调用数据库查找id
//        * */
//
//        //  判断邮件是否已存在附件文件夹，若不存在，则新建一个文件夹
//        File targetDir = new File(appendixDir+id);
//        if(!targetDir.exists())
//            targetDir.mkdir();
//        File targetFile = new File(appendixDir+id+"/"+filename);
//        file.transferTo(targetFile);
//    }

}
